<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

use DB;

class usersController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        //保存搜索条件
        $where = '';
        //实例化操作表
        $ob = DB::table('user');
        //判断是否有搜索条件
        if($request->has('username')){
            //获取搜索的条件
            $name = $request->input('username');
            //添加到将要携带到分页中的数组中
            $where['username'] = $name;
            //给查询添加where条件
            $ob->where('username','like',"%{$name}%");
        }
        //执行分页查询
        $list = $ob->paginate(5);
        return view('admin.users.details',['list'=>$list, 'where'=>$where]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        return view('admin.users.add');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
        // 判断是否有文件上传
        // dd($request->all());
        if($request->hasFile('upic')){
            // 判断上传的文件是否有效
            if($request->file('upic')->isValid()){
                // 获取上传的文件对象
                $data = $request->file('upic');                
                // 获取上传的文件的后缀
                $ext = $data->getClientOriginalExtension();
                // 拼装出你需要使用的文件名
                $picname = time().rand(1000,9999).'.'.$ext;
                // 移动临时文件，生成新文件到指定目录下
                $data->move('./admin/upload',$picname);                           
                $list = $request->except('_token','_method');
                $list['upic'] = $picname;                

                // 注册时间
                $list['regtime'] = time();
                // 给密码加密
                $list['userpwd'] = md5($list['userpwd']);
                // dd($list);    
                $id = DB::table('user')->insertGetId($list);
                if($id > 0){
                    return redirect('admin/users/details')->with('msg','添加成功');
                }
            }
        }

        // dd($list);
        $list = $request->except('_token');
        $list['regtime'] = time();
        // 给密码加密
        $list['userpwd'] = md5($list['userpwd']);
        $list['upic'] = 'touxiang.jpg';
        // dd($list['upic']);
        $id = DB::table('user')->insertGetId($list);
        // dd($id);
        if($id>0){
            return redirect('admin/users/details')->with('msg','添加成功');
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
        $list = DB::table('user')->where('id', $id)->select()->get()->first();
        return view('admin.users.edit', ['id'=>$id,'list'=>$list]);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        // 判断是否有文件上传
        // dd($request->all());
        if($request->hasFile('upic')){
            // 判断上传的文件是否有效
            if($request->file('upic')->isValid()){
                // 获取上传的文件对象
                $data = $request->file('upic');                
                // 获取上传的文件的后缀
                $ext = $data->getClientOriginalExtension();
                // 拼装出你需要使用的文件名
                $picname = time().rand(1000,9999).'.'.$ext;
                // 移动临时文件，生成新文件到指定目录下
                $data->move('./admin/upload',$picname);                           
                $list = $request->except('_token','_method');
                $list['upic'] = $picname;
                $row = DB::table('user')->where('id', $id)->update($list);
                if($row > 0){
                    return redirect('admin/users/details')->with('msg','修改成功');
                }else{
                    return redirect('admin/users/details')->with('error','修改失败');
                }
            }
        }

        $list = $request->except('_token','_method');
        $row = DB::table('user')->where('id', $id)->update($list);
        if($row > 0){
            return redirect('admin/users/details')->with('msg','修改成功');
        }else{
            return redirect('admin/users/details')->with('error','修改失败');
        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
        $row = DB::table('user')->where('id', $id)->delete();
        if($row > 0){
            return redirect('admin/users/details')->with('msg','删除成功');
        }else{
            return redirect('admin/users/details')->with('error','删除失败');
        }
    }
}